<!DOCTYPE html>
<html>
<head>
    <meta name="viewport" content="width=device-width" />
    <meta charset="utf-8">
    <title>BootStrap Table使用</title>
    <script src="../hplus/js/jquery.min.js?v=2.1.4"></script>
    <script src="../hplus/js/bootstrap.min.js?v=3.3.5"></script>
    <link href="../hplus/css/bootstrap.min.css" rel="stylesheet">
    <script src="../hplus/js/bootstrap-table.js"></script>
    <link href="../hplus/css/bootstrap-table.css?v=1.18.1" rel="stylesheet">
    <script src="../hplus/js/bootstrap-table-zh-CN.js"></script>
    <link href="../hplus/css/font-awesome.min.css?v=4.4.0" rel="stylesheet">
    <link href="../hplus/css/animate.min.css" rel="stylesheet">
    <link href="../hplus/css/style.min.css?v=4.0.0" rel="stylesheet"><base target="_blank">
    <script src="../hplus/js/content.min.js?v=1.0.0"></script>
    <script src="../hplus/js/jquery-ui-1.10.4.min.js"></script>
    <script src="../hplus/js/plugins/beautifyhtml/beautifyhtml.js"></script>
    <script src="../hplus/js/content.min.js?v=1.0.0"></script>
    <script src="../hplus/js/plugins/validate/jquery.validate.min.js"></script>
    <script src="../hplus/js/plugins/validate/messages_zh.min.js"></script>
    <script src="../hplus/js/demo/form-validate-demo.min.js"></script>
    <script src="../hplus/js/plugins/footable/footable.all.min.js"></script>
    <script type="text/javascript" src="../hplus/js/plugins/markdown/markdown.js"></script>
    <script type="text/javascript" src="../hplus/js/plugins/markdown/to-markdown.js"></script>
    <script type="text/javascript" src="../hplus/js/plugins/markdown/bootstrap-markdown.js"></script>
    <script type="text/javascript" src="../hplus/js/plugins/markdown/bootstrap-markdown.zh.js"></script>
    <script src="../hplus/js/plugins/sweetalert/sweetalert.min.js"></script>
</head>
<body>
<div class="wrapper wrapper-content animated fadeInRight">
    <div class="row">
        <div class="col-sm-12">
            <div class="ibox float-e-margins">
                <div class="ibox-title">
                    <h5>患者信息推送接口日志</h5>
                    <div class="ibox-tools">
                        <a class="collapse-link">
                            <i class="fa fa-chevron-up"></i>
                        </a>
                        <a class="dropdown-toggle" data-toggle="dropdown" href="#">
                            <i class="fa fa-wrench"></i>
                        </a>
                    </div>
                </div>
                <div class="ibox-content">
                    <form role="form" class="form-horizontal m-t" id="inputForm" target="_self">
                        <div class="form-group ">
                            <label class="col-sm-2 control-label">病理号：</label>
                            <div class="col-sm-2">
                                <input type="text" id="pathNo" value="" name="searchText" class="form-control"
                                       placeholder="">
                                <span class="help-block m-b-none"></span>
                                <label id="pathNoTemp" hidden></label>
                            </div>
                            <label class="col-sm-1 control-label">请求日期：</label>
                            <div class="col-sm-3">
                                <input type="date" id="dateStart" value="" name="dateStart" class="form-control"
                                       placeholder="样式：2020/02/03">
                                <span class="help-block m-b-none"></span>
                                <label id="dateStartTemp" hidden></label>
                            </div>
                            <div class="col-sm-3">
                                <input id="dateEnd" name="dateEnd" value="" class="form-control"  type="date"/>
                                <span class="help-block m-b-none"></span>
                                <label id="dateEndTemp" hidden></label>
                            </div>
                        </div>
                        <div class="hr-line-dashed"></div>
                        <div class="form-group">
                            <div class="col-sm-4 col-sm-offset-5">
                                <button class="btn btn-primary" id="search">查询</button>
                                <button class="btn btn-white" id="clearLog">清空</button>
                            </div>
                        </div>
                    </form>
                </div>
                <div class="ibox-content">
                    <div class="fixed-table-toolbar">
                        <button class="btn btn-primary" id="statistics" onclick="statics()" style="float: right;margin: 10px;">统计</button>
                    </div>
                    <table id="tb_patientLogs"></table>
                </div>
            </div>
        </div>
        <div class="col-sm-12">
            <div class="ibox float-e-margins">
                <div class="ibox-title">
                    <h5>患者信息推送接口调试日志</h5>
                    <div class="ibox-tools">
                        <a class="collapse-link">
                            <i class="fa fa-chevron-up"></i>
                        </a>
                        <a class="dropdown-toggle" data-toggle="dropdown" href="#">
                            <i class="fa fa-wrench"></i>
                        </a>
                    </div>
                </div>
                <div class="ibox-content">
                    <form role="form" class="form-horizontal m-t" id="inputFormDebug" target="_self">
                        <div class="form-group ">
                            <label class="col-sm-2 control-label">病理号：</label>
                            <div class="col-sm-2">
                                <input type="text" id="pathNoDebug" value="" name="searchText" class="form-control"
                                       placeholder="">
                                <span class="help-block m-b-none"></span>
                                <label id="pathNoTempDebug" hidden></label>
                            </div>
                            <label class="col-sm-1 control-label">创建日期：</label>
                            <div class="col-sm-3">
                                <input type="date" id="dateStartDebug" value="" name="dateStart" class="form-control"
                                       placeholder="样式：2020/02/03">
                                <span class="help-block m-b-none"></span>
                                <label id="dateStartTempDebug" hidden></label>
                            </div>
                            <div class="col-sm-3">
                                <input id="dateEndDebug" name="dateEnd" value="" class="form-control"  type="date"/>
                                <span class="help-block m-b-none"></span>
                                <label id="dateEndTempDebug" hidden></label>
                            </div>
                        </div>
                        <div class="hr-line-dashed"></div>
                        <div class="form-group">
                            <div class="col-sm-4 col-sm-offset-5">
                                <button class="btn btn-primary" id="submit1">查询</button>
                                <button class="btn btn-white" id="clearDebug">清空</button>
                            </div>
                        </div>
                    </form>
                </div>
                <div class="ibox-content">
                    <table id="tb_debug"></table>
                </div>
            </div>
        </div>
    </div>
</div>
<div class="panel-body" style="padding-bottom:0px;">
</div>
<div class="modal inmodal fade" id="myModal5" tabindex="-1" role="dialog" aria-hidden="true">
    <div class="modal-dialog modal-lg" style="padding-right:10px; width: 1200px;">
        <div class="ibox-content">
            <table id="tb_detail"></table>
        </div>
    </div>
</div>

<div class="modal inmodal fade" id="statisticsModel" tabindex="-1" role="dialog" aria-hidden="true">
    <div class="modal-dialog modal-lg">
        <div class="ibox-content">
            <table id="statisticsTable"></table>
        </div>
    </div>
</div>
</body>

<script type="text/javascript">
    $(function () {
        //1.初始化Table
        var oTable = new TableInit();
        oTable.Init();
        //2.初始化Button的点击事件
        var oButtonInit = new ButtonInit();
        oButtonInit.Init();

        var oTableDebug = new TableDebugInit();
        oTableDebug.Init();

    });
    // function addFunctionAlty(value, row, index) {
    //     return [
    //         '<button id="showDetail" type="button" className="btn btn-primary">详细</button><button id="statistics" type="button" className="btn btn-primary">统计</button>'
    //     ].join('');
    // }
    function statics(){
        //初始化Table
        var showDetailsT2 = new showDetails2("");
        showDetailsT2.Init();
        $("#statisticsModel").modal('show');
    };

    // window.operateEvents = {
    //     'click #showDetail': function (e, value, row, index) {
    //         //初始化Table
    //         var showDetailsT = new showDetails(row.req_updateDateTime);
    //         showDetailsT.Init();
    //         $("#myModal5").modal('show');
    //     },
    //     'click #statistics': function (e, value, row, index) {
    //         //初始化Table
    //         var showDetailsT2 = new showDetails2(row.req_updateDateTime);
    //         showDetailsT2.Init();
    //         $("#statisticsModel").modal('show');
    //
    //     }
    // };
    var showDetails2 = function (searchDate) {
        var showDetailsTable2= new Object();
        //初始化Tabl
        showDetailsTable2.Init = function () {
            $('#statisticsTable').bootstrapTable({
                url: '/interfacetool/detailsForStatistics',         //请求后台的URL（*）
                method: 'post',                      //请求方式（*）
                toolbar: '#toolbar',                //工具按钮用哪个容器
                striped: true,                      //是否显示行间隔色
                cache: false,                       //是否使用缓存，默认为true，所以一般情况下需要设置一下这个属性（*）
                pagination: true,                   //是否显示分页（*）
                sortable: false,                     //是否启用排序
                sortOrder: "asc",                   //排序方式
                queryParams: showDetailsTable2.queryParams,//传递参数（*）
                sidePagination: "server",           //分页方式：client客户端分页，server服务端分页（*）
                pageNumber: 1,                       //初始化加载第一页，默认第一页
                pageSize: 1000,                       //每页的记录行数（*）
                // pageList: [10, 25, 50, 100],        //可供选择的每页的行数（*）
                //search: true,                       //是否显示表格搜索，此搜索是客户端搜索，不会进服务端，所以，个人感觉意义不大
                strictSearch: true,
                showColumns: false,                  //是否显示所有的列
                showRefresh: true,                  //是否显示刷新按钮
                minimumCountColumns: 2,             //最少允许的列数
                //clickToSelect: false,                //是否启用点击选中行
                height: 500,                        //行高，如果没有设置height属性，表格自动根据记录条数觉得表格高度
                uniqueId: "ID",                     //每一行的唯一标识，一般为主键列
                showToggle: false,                    //是否显示详细视图和列表视图的切换按钮
                cardView: false,                    //是否显示详细视图
                detailView: false,                   //是否显示父子表
                ajaxOptions: {
                    headers: {"Authorization": handleLocalStorage('get', 'Authorization')}
                },
                columns: [{
                    field: 'name',
                    title: '分类'
                }, {
                    field: 'info',
                    title: '统计'
                }
                ],
                responseHandler: function (res) {
                    return {
                        "total": res.data.total,
                        "rows": res.data.dataList,
                    }
                }
            });
        };
        //得到查询的参数
        showDetailsTable2.queryParams = function (params) {
            var temp = {   //这里的键的名字和控制器的变量名必须一直，这边改动，控制器也需要改成一样的
                searchTime:"",
                startTime:trim($('#dateStartTemp').val()),//
                endTime:trim($('#dateEndTemp').val())
            };
            return temp;
        };
        return showDetailsTable2;
    };

    var showDetails = function (searchDate) {
        var showDetailsTable = new Object();
        //初始化Tabl
        showDetailsTable.Init = function () {
            $('#tb_detail').bootstrapTable({
                url: '/interfacetool/detailsForCommon',         //请求后台的URL（*）
                method: 'post',                      //请求方式（*）
                toolbar: '#toolbar',                //工具按钮用哪个容器
                striped: true,                      //是否显示行间隔色
                cache: false,                       //是否使用缓存，默认为true，所以一般情况下需要设置一下这个属性（*）
                pagination: true,                   //是否显示分页（*）
                sortable: false,                     //是否启用排序
                sortOrder: "asc",                   //排序方式
                queryParams: showDetailsTable.queryParams,//传递参数（*）
                sidePagination: "server",           //分页方式：client客户端分页，server服务端分页（*）
                pageNumber: 1,                       //初始化加载第一页，默认第一页
                pageSize: 10,                       //每页的记录行数（*）
                pageList: [10, 25, 50, 100],        //可供选择的每页的行数（*）
                //search: true,                       //是否显示表格搜索，此搜索是客户端搜索，不会进服务端，所以，个人感觉意义不大
                strictSearch: true,
                showColumns: true,                  //是否显示所有的列
                showRefresh: true,                  //是否显示刷新按钮
                minimumCountColumns: 2,             //最少允许的列数
                //clickToSelect: false,                //是否启用点击选中行
                height: 500,                        //行高，如果没有设置height属性，表格自动根据记录条数觉得表格高度
                uniqueId: "ID",                     //每一行的唯一标识，一般为主键列
                showToggle: true,                    //是否显示详细视图和列表视图的切换按钮
                cardView: false,                    //是否显示详细视图
                detailView: false,                   //是否显示父子表
                ajaxOptions: {
                    headers: {"Authorization": handleLocalStorage('get', 'Authorization')}
                },
                columns: [
                    {
                        checkbox: false
                    },
                    {
                        title: '编号',//标题
                        formatter: function (value, row, index) {
                            var pageSize = $('#tb_debug').bootstrapTable('getOptions').pageSize;
                            var pageNumber = $('#tb_debug').bootstrapTable('getOptions').pageNumber;
                            return pageSize * (pageNumber - 1) + index + 1;
                        }
                    }
                    , {
                        field: 'pathNo',
                        title: '病理号'
                    }, {
                        title: '推送状态',
                        formatter: function (value, row, index) {
                            var stateValue = '';
                            if (row.state == '0') {
                                stateValue = '未发送'
                            } else if (row.state == '1') {
                                stateValue = '已发送'
                            } else if (row.state == '2') {
                                stateValue = '发送成功'
                            } else if (row.state == '3') {
                                stateValue = '发送/校验失败'
                            }
                            return stateValue;
                        }
                    }
                ],
                responseHandler: function (res) {
                    return {
                        "total": res.data.total,
                        "rows": res.data.dataList,
                    }
                }
            });
        };
        //得到查询的参数
        showDetailsTable.queryParams = function (params) {
            var temp = {   //这里的键的名字和控制器的变量名必须一直，这边改动，控制器也需要改成一样的
                limit: params.limit,   //页面大小
                offset: params.offset,  //页码
                searchTime: searchDate
            };
            return temp;
        };
        return showDetailsTable;
    };


    var TableDebugInit = function () {
        var oTableDebug = new Object();
        //初始化Table
        oTableDebug.Init = function () {
            $('#tb_debug').bootstrapTable({
                url: '/interfacetool/patientLogList',         //请求后台的URL（*）
                method: 'post',                      //请求方式（*）
                toolbar: '#toolbar',                //工具按钮用哪个容器
                striped: true,                      //是否显示行间隔色
                cache: false,                       //是否使用缓存，默认为true，所以一般情况下需要设置一下这个属性（*）
                pagination: true,                   //是否显示分页（*）
                sortable: false,                     //是否启用排序
                sortOrder: "asc",                   //排序方式
                queryParams: oTableDebug.queryParams,//传递参数（*）
                sidePagination: "server",           //分页方式：client客户端分页，server服务端分页（*）
                pageNumber:1,                       //初始化加载第一页，默认第一页
                pageSize: 10,                       //每页的记录行数（*）
                pageList: [10, 25, 50, 100],        //可供选择的每页的行数（*）
                //search: true,                       //是否显示表格搜索，此搜索是客户端搜索，不会进服务端，所以，个人感觉意义不大
                strictSearch: true,
                showColumns: true,                  //是否显示所有的列
                showRefresh: true,                  //是否显示刷新按钮
                minimumCountColumns: 2,             //最少允许的列数
                //clickToSelect: false,                //是否启用点击选中行
                height: 500,                        //行高，如果没有设置height属性，表格自动根据记录条数觉得表格高度
                uniqueId: "ID",                     //每一行的唯一标识，一般为主键列
                showToggle:true,                    //是否显示详细视图和列表视图的切换按钮
                cardView: false,                    //是否显示详细视图
                detailView: false,                   //是否显示父子表
                columns: [
                    {
                        checkbox: false
                    },
                    {
                        title: '编号',//标题
                        formatter: function (value, row, index) {
                            var pageSize=$('#tb_debug').bootstrapTable('getOptions').pageSize;
                            var pageNumber=$('#tb_debug').bootstrapTable('getOptions').pageNumber;
                            return pageSize * (pageNumber - 1) + index + 1;
                        }
                    },{
                        field:"pathno",
                        title:'病理号'
                    }
                    ,{
                        field: 'reqjson',
                        title: '请求信息',
                        cellStyle: formatTableUnit,
                        formatter: LogFormatter2,
                    }, {
                        field: 'rspjson',
                        title: '接口返回信息',
                        cellStyle: formatTableUnit,
                        formatter: reqjsonLogFormatter2,
                    },{
                        field: 'formatCreatetime',
                        title: '创建时间'
                    }
                    ,{
                        field: 'state',
                        title: '日志状态',
                        align: 'center',
                        valign: 'middle',
                        formatter: stateFormatterLog
                    },{
                        field: 'details',
                        title: '日志详情',
                        align: 'center',
                        valign: 'middle',
                        formatter: logdetailsFormatter
                    },{
                        field: 'oprate',
                        title: '日志操作',
                        align: 'center',
                        valign: 'middle',
                        formatter: pushMedicalInfoFormmaterDebug
                    }
                ],
                responseHandler:function(res){
                    return{
                        "total":res.data.total,
                        "rows":res.data.dataList,
                    }
                }
            });
        };
        //得到查询的参数
        oTableDebug.queryParams = function (params) {
            var temp = {   //这里的键的名字和控制器的变量名必须一直，这边改动，控制器也需要改成一样的
                limit: params.limit,   //页面大小
                offset: params.offset,  //页码
                apiName:"pushMedical",
                pathNo:trim($('#pathNoTempDebug').val()),
                dateStart:trim($('#dateStartTempDebug').val()),//
                dateEnd:trim($('#dateEndTempDebug').val())
            };
            return temp;
        };
        return oTableDebug;
    };


    var TableInit = function () {
        var oTableInit = new Object();
        //初始化Table
        oTableInit.Init = function () {
            $('#tb_patientLogs').bootstrapTable({
                url: '/interfacetool/LogApis',         //请求后台的URL（*）
                method: 'post',                      //请求方式（*）
                toolbar: '#toolbar',                //工具按钮用哪个容器
                striped: true,                      //是否显示行间隔色
                cache: false,                       //是否使用缓存，默认为true，所以一般情况下需要设置一下这个属性（*）
                pagination: true,                   //是否显示分页（*）
                sortable: false,                     //是否启用排序
                sortOrder: "asc",                   //排序方式
                queryParams: oTableInit.queryParams,//传递参数（*）
                sidePagination: "server",           //分页方式：client客户端分页，server服务端分页（*）
                pageNumber:1,                       //初始化加载第一页，默认第一页
                pageSize: 10,                       //每页的记录行数（*）
                pageList: [10, 25, 50, 100],        //可供选择的每页的行数（*）
                //search: true,                       //是否显示表格搜索，此搜索是客户端搜索，不会进服务端，所以，个人感觉意义不大
                strictSearch: true,
                showColumns: true,                  //是否显示所有的列
                showRefresh: true,                  //是否显示刷新按钮
                minimumCountColumns: 2,             //最少允许的列数
                //clickToSelect: false,                //是否启用点击选中行
                height: 500,                        //行高，如果没有设置height属性，表格自动根据记录条数觉得表格高度
                uniqueId: "ID",                     //每一行的唯一标识，一般为主键列
                showToggle:true,                    //是否显示详细视图和列表视图的切换按钮
                cardView: false,                    //是否显示详细视图
                detailView: false,                   //是否显示父子表
                columns: [
                    {
                        checkbox: false
                    },
                    {
                        title: '编号',//标题
                        formatter: function (value, row, index) {
                            var pageSize=$('#tb_patientLogs').bootstrapTable('getOptions').pageSize;
                            var pageNumber=$('#tb_patientLogs').bootstrapTable('getOptions').pageNumber;
                            return pageSize * (pageNumber - 1) + index + 1;
                        }
                    },{
                        field:"pathid",
                        title:"病理号"
                    },{
                        field: "reqUpdatedatetime",
                        title:"请求日期"
                    },{
                        field: 'requestdetails',
                        title: '请求参数',
                        cellStyle: formatTableUnit,
                        formatter: LogFormatter,
                    }, {
                        field: 'responsedetails',
                        title: '接口返回信息',
                        cellStyle: formatTableUnit,
                        formatter: reqjsonLogFormatter,
                    }, {
                        field: 'creatime',
                        title: '创建时间',
                    },{
                        field: 'state',
                        title: '日志状态',
                        align: 'center',
                        valign: 'middle',
                        formatter: stateFormatter //添加超链接的方法
                    },
                    // {
                    //     field: 'details',
                    //     title: '操作',
                    //     align: 'center',
                    //     valign: 'middle',
                    //     events: operateEvents,//给按钮注册事件
                    //     formatter: addFunctionAlty//表格中增加按钮
                    // },
                    {
                        field: 'oprate',
                        title: '日志操作',
                        align: 'center',
                        valign: 'middle',
                        formatter: pushMedicalInfoFormmater
                    }
                ],
                responseHandler:function(res){
                    return{
                        "total":res.data.total,
                        "rows":res.data.dataList
                    }
                }
            });
        };
        //得到查询的参数
        oTableInit.queryParams = function (params) {
            var temp = {   //这里的键的名字和控制器的变量名必须一直，这边改动，控制器也需要改成一样的
                page: params.limit,   //页面大小
                offset: params.offset,  //页码
                type:"pushMedical",
                error:false,
                pathNo:trim($('#pathNoTemp').val()),
                dateStart:trim($('#dateStartTemp').val()),
                dateEnd:trim($('#dateEndTemp').val())
            };
            return temp;
        };
        return oTableInit;
    };
    var ButtonInit = function () {
        var oInit = new Object();
        var postdata = {};

        oInit.Init = function () {
            //初始化页面上面的按钮事件

        };
        return oInit;
    };

    function detailsFormatter(value, row, index) {
        return [
            '<a href="/selectJsonById?id='+row.id+'&state=1"><i class="fa text-navy"></i>详细</a>'
        ].join("")
    }

    function logdetailsFormatter(value, row, index) {
        return [
            '<a href="/interfacetool/patientLogById?id='+row.id+'&state=1"><i class="fa text-navy"></i>详细</a>'
        ].join("")
    }

    function addMenuTab(dataUrl, menuName, dataIndex) {
        return window.parent.addMenuTab(dataUrl, menuName, dataIndex);
    }

    //td宽度以及内容超过宽度隐藏
    function formatTableUnit(value, row, index) {
        return {
            css: {
                "max-width": "370px",
                "white-space": "nowrap",
                "text-overflow": "ellipsis",
                "overflow": "hidden",
            }
        }
    }
    //表格超链接显示
    function LogFormatter(value, row, index){
        var html='<div class="wrap-logs"><a href="/selectJsonById?id='+row.id+'&state=3" class="wrap-logs">'+row.requestdetails+'</a></div>';
        return [html].join("")
    }
    function LogFormatter2(value, row, index){
        var html='<div class="wrap-logs"><a href="/interfacetool/patientLogById?id='+row.id+'&state=反向校验" class="wrap-logs">'+row.reqjson+'</a></div>';
        return [html].join("")
    }
    //表格超出宽度鼠标悬停显示td内容
    function paramsMatter(value, row, index) {
        var span = document.createElement("span");
        span.setAttribute("title", value);
        span.innerHTML = value;
        return span.outerHTML;
    }

    function reqjsonLogFormatter(value, row, index){
        var html='<div class="wrap-logs"><a href="/selectJsonById?id='+row.id+'&state=4" class="wrap-logs">'+row.responsedetails+'</a></div>';
        return [html].join("")
    }

    function reqjsonLogFormatter2(value, row, index){

        var html='<div class="wrap-logs"><a href="/interfacetool/patientLogById?id='+row.id+'&state=1" class="wrap-logs">'+row.rspjson+'</a></div>';
        return [html].join("")
    }

</script>
<script src="../hplus/js/local_patient.js"></script>
</html>
